package com.wfs.loop;

/**
 * 学习嵌套循环
 */
public class ForForDemo5 {
    public static void main(String[] args) {
        test1();
        test2();
    }

    /**
     * 1 打印一个由星号(*)组成的三角形图案
     * 外层循环控制行数，内层循环控制每行的星号数量
     */
    public static void test1() {
        // 外层循环，控制总行数为10行
        for (int i = 0; i < 10; i++) {
            // 内层循环，每行的星号数量从当前行号i开始，到9结束
            // 这样随着行数增加，每行的星号数量会递减
            for (int j = i; j < 10; j++) {
                // 打印星号，不换行
                System.out.print('*');
            }
            // 每行结束后换行
            System.out.println();
        }
    }

    /**
     * 2 打印99乘法口诀
     * 该方法用于打印标准的99乘法口诀表，格式为"i*j=结果"
     */
    public static void test2() {
        // 外层循环控制行数，从0到8，共9行
        for (int i = 0; i < 9; i++) {
            // 内层循环控制每行的列数，从0到当前行数i
            for (int j = 0; j <= i; j++) {
                // 打印乘法表达式，使用\t制表符对齐
                // j+1和i+1是因为循环从0开始，而乘法口诀从1开始
                System.out.print((j + 1) + "*" + (i + 1) + "=" + ((j + 1) * (i + 1)) + '\t');
            }
            // 每行结束后换行
            System.out.println();
        }
    }
}
